[project]
name = "chromadb"
dynamic = ["version"]

authors = [
  { name="Jeff Huber", email="jeff@trychroma.com" },
  { name="Anton Troynikov", email="anton@trychroma.com" }
]
description = "Chroma."
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: Apache Software License",
    "Operating System :: OS Independent",
]
dependencies = [
  'build >= 1.0.3',
  'requests >= 2.28',
  'pydantic >= 1.9',
  'chroma-hnswlib==0.7.3',
  'fastapi >= 0.95.2',
  'uvicorn[standard] >= 0.18.3',
  'numpy >= 1.22.5',
  'posthog >= 2.4.0',
  'typing_extensions >= 4.5.0',
  'pulsar-client>=3.1.0',
  'onnxruntime >= 1.14.1',
  'opentelemetry-api>=1.2.0',
  'opentelemetry-exporter-otlp-proto-grpc>=1.2.0',
  'opentelemetry-instrumentation-fastapi>=0.41b0',
  'opentelemetry-sdk>=1.2.0',
  'tokenizers >= 0.13.2',
  'pypika >= 0.48.9',
  'tqdm >= 4.65.0',
  'overrides >= 7.3.1',
  'importlib-resources',
  'graphlib_backport >= 1.0.3; python_version < "3.9"',
  'grpcio >= 1.58.0',
  'bcrypt >= 4.0.1',
  'typer >= 0.9.0',
  'kubernetes>=28.1.0',
  'tenacity>=8.2.3',
  'PyYAML>=6.0.0',
  'mmh3>=4.0.1',
  'orjson>=3.9.12',
]

[tool.black]
line-length = 88
required-version = "23.3.0" # Black will refuse to run if it's not this version.
target-version = ['py38', 'py39', 'py310', 'py311']

[tool.pytest.ini_options]
pythonpath = ["."]

[tool.mypy]
ignore_errors = false

[[tool.mypy.overrides]]
module = ["chromadb.proto.*"]
ignore_errors = true

[project.scripts]
chroma = "chromadb.cli.cli:app"

[project.urls]
"Homepage" = "https://github.com/chroma-core/chroma"
"Bug Tracker" = "https://github.com/chroma-core/chroma/issues"

[build-system]
requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
local_scheme="no-local-version"

[tool.setuptools]
packages = ["chromadb"]

[tool.setuptools.package-data]
chromadb = ["*.yml"]
